﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>FSF.bsearch</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>bsearch</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">стандартные функции</a>
</div>

<div class=shortdescr>
Функция <code>FSF.bsearch</code> осуществляет двоичный поиск в массиве.
</div>

<pre class=syntax>
void* WINAPI bsearch(
  const void *Key,
  const void *Base,
  size_t NElem,
  size_t Width,
  int (<b>WINAPI</b> *fcmp)(const void *, const void *,void *),
  void *UserParam
);
</pre>

<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>Key</div>
    <div class=dfndescr>Указатель на элемент, который хотим найти.</div>
  <div class=dfn>Base</div>
    <div class=dfndescr>Указатель на начало данных для сортировки. Массив данных должен быть отсортирован.</div>
  <div class=dfn>NElem</div>
    <div class=dfndescr>Количество сортируемых данных.</div>
  <div class=dfn>Width</div>
    <div class=dfndescr>Размер одного элемента сортируемых данных.</div>
  <div class=dfn>fcmp</div>
    <div class=dfndescr>Функция сравнения двух элементов. В процессе сортировки вызывается каждый раз, когда необходимо сравнить пару элементов данных.
    Функция сравнения <code>fcmp</code> должна иметь декларацию <code>WINAPI</code>.<br>
    <code>fcmp</code> получает три аргумента - <code>elem1</code>, <code>elem2</code> (которые являются указателями на данные) и <code>userparam</code> (то, что было передано в функцию в качестве параметра <code>UserParam</code>),
    и возвращает результат:
    <table border=0>
    <tr><td>*elem1 &lt; *elem2</td><td>- fcmp возвращает целое меньше 0</td></tr>
    <tr><td>*elem1 == *elem2</td><td>- fcmp возвращает 0</td></tr>
    <tr><td>*elem1  &gt; *elem2</td><td>- fcmp возвращает целое больше 0</td></tr>
    </table>
    </div>
  <div class=dfn>UserParam</div>
    <div class=dfndescr>Указатель на пользовательские данные, которые функция <code>qsort</code> будет передавать в функцию сравнения <code>fcmp</code> в качестве третьего параметра.</div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>
Функция возвращает адрес первого вхождения в таблице <code>Base</code>, которое соответствует ключу поиска <code>Key</code>. Если значение не найдено, то функция возвращает <code>0</code>.
</div>

<h3>Замечания</h3>
<div class=descr>
Более подробно о функции см. справочное руководство по языку C/C++.
</div>

<h3>Пример</h3>
<div class=descr>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="qsort.html">FSF.qsort</a>
</div>

</body>
</html>
